package org.hard.netty.c1;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;

/**
 * FileChannel 传输数据
 * @author: 王林博
 * @date: 2022年08月11日 16:54
 */
public class TestFileChannelTransferTo {

    public static void main(String[] args) {
        try (FileChannel form = new FileInputStream("demo/data2.txt").getChannel();
             FileChannel to = new FileOutputStream("demo/to.txt").getChannel()
        ) {
            // 底层使用操作系统的零拷贝进行优化  上限传输2G
            long size = form.size();
            for (long left = size;left > 0;) {
                 left -= form.transferTo((size - left), left, to);
            }
//            form.transferTo(0, form.size(), to);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
